package com.goldfish666.remote_control.enums;


import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

public enum ResultCodeEnum {
    /**
     * 一般性警告
     */
    Warning(1400),
    /**
     * 登录失败
     */
    LoginFail(1401),
    /**
     * 未认证
     */
    Unauth(1402),
    /**
     * 认证超时
     */
    AuthTimeout(1403),
    /**
     * 无权限
     */
    NoPermission(1404),
    /**
     * 接口未定义
     */
    ApiNotFound(1421),
    /**
     * 数据未找到
     */
    DataNotFound(1422),
    /**
     * 数据重复
     */
    DataExisted(1423),

    /**
     * 系统错误
     */
    Error(1500),

    /**
     * 远程调用用户接口错误码
     */


    /**
     * 用户短时间内重复操作
     */
    RepeatOperation(9002),

    /**
     * 网络连接失败
     */
    NetworkFail(9004),
    /**
     * 请求错误
     */
    ParamsError(9005);


    private int value;

    ResultCodeEnum(int value) {
        this.value = value;
    }

    @JsonCreator
    public static ResultCodeEnum fromValue(int typeCode) {
        for (ResultCodeEnum c : ResultCodeEnum.values()) {
            if (c.value == typeCode) {
                return c;
            }
        }
        return Error;
    }

    @JsonValue
    public int getValue() {
        return this.value;
    }


}
